#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <string>
#include <vector>
#include <stack>
using namespace std;


#define StrLength 20
class TreeItems;
class BasicMenuItem;
typedef BasicMenuItem* PBasicItem;
typedef string MIem [StrLength];
typedef int Id;

class BasicMenuItem
{
public:
	string Item;
	Id idItem;
	bool Selected;
	Id pRew;
public:
//	BasicMenuItem(void);
//	~BasicMenuItem	(void);
//	virtual bool Select();
	
};

class TreeItems : public BasicMenuItem
{
public:
	vector < BasicMenuItem > ListOfFree;
public:
	//TreeItems ();
	//~TreeItems ();
	
//	virtual bool Select ();
//	bool GetSelected ();
	void InitList ();
	BasicMenuItem CreateElem (string Str, Id id, bool Sel, Id pRew);
	void Print ( int Cur, vector < BasicMenuItem > List );
	vector < BasicMenuItem > NewList ( Id p );
	void GetPunkt ();
	bool IsPointer( int pos );
	void Activate ( vector < BasicMenuItem > List );
	void DeActivate ( vector < BasicMenuItem > List );




};